Поскольку сейчас в большинстве компьютеров устанавливаются видеоадаптеры VGA, на рис. 6.18 также показана стандартная область BIOS адаптера VGA. Принимаемые по умолчанию адреса можно легко изменить. ROM IPL и память для буфера обмена также используются в других сетевых адаптерах, хотя их емкость и начальные адреса могут быть иными. Из гнезда некоторых сетевых адаптеров можно вынуть микросхему ROM, освободив тем самым соответствующие области верхней памяти и уменьшив вероятность возникновения конфликтов.
Обратите внимание, что операционные системы Windows 9x, Windows ME и Windows 2000/ХР сами по себе не пытаются оптимизировать использование памяти, а лишь устраняют конфликты. Дело в том, что при использовании 32-разрядных драйверов оптимизация малоэффективна.
Системная BIOS
Последние 128 Кбайт зарезервированной памяти используются для системной BIOS, которая записана в микросхемах ROM. В процессе загрузки программы BIOS управляют компьютером, а во время обычной работы служат драйверами компонентов системы. Поскольку эти программы должны быть доступны сразу после включения компьютера, их нельзя загружать с диска. Ниже приведены основные операции, которые выполняют программы, записанные в микросхемах ROM на системной плате.
Сегменты Е000 и F000 в карте распределения памяти считаются зарезервированными для системной программы BIOS, но вся область используется только в некоторых компьютерах класса AT. В компьютерах класса PC/XT занят только сегмент F000, а сегмент Е000 можно использовать для ROM или RAM адаптеров. Во многих компьютерах класса AT сегмент F000 полностью занят BIOS, а сегмент Е000 считается занятым, но не используется. Захватывая этот сегмент, 16-разрядная системная плата берет на себя управление соответствующими адресами, что не позволяет использовать эту область для других целей. Иными словами, ни один из адаптеров не может воспользоваться адресами этого сегмента. Именно поэтому в большинстве адаптеров конфигурация сегмента Е000 не предусмотрена. Пространство памяти объемом 64 Кбайт фактически оказывается потерянным, но процессоры 386 и последующие с помощью своих устройств управления памятью могут отобразить часть дополнительной памяти в сегмент Е000 как блок верхней памяти и использовать его для загрузки программ. Лучше использовать этот сегмент таким образом, чем вообще его потерять! В DOS подобные функции реализуются драйвером Emm386. ехе.
На рис. 6.19 показана карта распределения памяти системной BIOS для 16-разрядных систем и выше.
Отметим, что в стандартном компьютере область BIOS занимает только сегмент F000 (64 Кбайт). В большинстве случаев сегмент Е000 полностью свободен, и его можно использовать в качестве блока верхней памяти.